var api = require('../../../utils/api.js')
var $ = require('../../../utils/util.js')
var regeneratorRuntime = require('../../../utils/runtime.js')
var app = getApp()
var Store = app.Store
Page({

  /**
   * 页面的初始数据 
   */
  data: {
    company:'', //'企业用户',
    company_id:0,
    factory:'', //'厂站名称',
    equip:'', // '设备名称', 
    contact:wx.getStorageSync('user_name'), // '联系人',
    phone:wx.getStorageSync('phonenumber'), // '联系电话',
    content:'',//任务内容
    start_time:$.getCurrentDate().getFullDate()+' 00:00',//计划开始时间
    end_time:$.getNextDay(Date.parse($.getCurrentDate().getFullDate()))+' 00:00',//计划结束时间
    leader:'',//负责人
    insider:'',//内部检修人员
    outsider:'',//外部检修人员
    is_power_off:0,//是否停电  （1：是，0：否）
    source:'小程序',//计划来源
    type:0,

    //弹窗相关
    isShowPicker:false,//是否停电弹窗
    isShowTimeStart:false,//是否弹出开始时间  
    isShowTimeEnd:false,//是否弹出结束时间
    pinkColumns:[ { type: 1, text: '是' },{ type: 0, text: '否' },],

    url: [
        api.repairsManage.setCheckByrepair, // 0:报修--检修 
        api.defect.setCheckBydefect//1: 缺陷--检修
    ],
    sourceArr: [ // 检修来源
      { type: 0, text: '报修' }, 
      { type: 1, text: '缺陷' },
    ],
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    Store.dispatch({
      type: 'SET_FROM',
      form: {

      },
    })

      if('type' in options){
          this.setData({
              type:options.type,
          })
          console.log(options.type+'===========')
      }

      if('info' in options ){
        var info = JSON.parse(options.info)  
        console.log("========================================")
        console.log(info)
          this.setData({
            info:info,
            dept_id:info.dept_id,
            company:info.company, //'企业用户',
            company_id:info.company_id, //'企业用户',
            factory_id:info.factory_id, //'企业用户',
            factory:info.factory, //'厂站名称',
            equip:info.line_name || info.equipment || info.equip||'', // '设备名称', 
            equip_id:info.equip_id || '',
            source:info.source || "",//来源
            defectNumber:info.number || '',//缺陷单号
            checkNumber:info.number ||'',//报修单号
            contact:info.defectFinder ||wx.getStorageSync("user_name") , // '联系人',
            phone:info.phone || wx.getStorageSync("phonenumber"), // '联系电话',
          })
        if($.isNull(this.data.dept_id)){
          if($.isNull(this.data.equip)){//非设备类
            api.$get(api.auth.findDeptIdBystation,{'name':this.data.factory,'parent_name':this.data.company,}).then((res)=>{
              this.setData({
                dept_id:res.data.dept_id,
                factory_id:res.data.station
              })
            })
          }else{//设备类
            api.$get(api.auth.findDeptIdByEquip,{'parent_name':this.data.factory,'name':this.data.equip}).then((res)=>{
              this.setData({
                dept_id:res.data.dept_id,
                equip_id:res.data.dept_id,
              })
            })
          }
        }else{
          api.$get(api.auth.findDeptIdBystation,{'name':this.data.factory,'parent_name':this.data.company,}).then((res)=>{
            this.setData({
              factory_id:res.data.station
            })
          })
        }
      }
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
  var form = Store.getState().formInfor.form
    var key = form.key 
    console.log('========'+key+'>>>>>')
    console.log('========'+form.selected+'>>>>>')
    if (!form.selected) return
    switch (key) {
      case 'selectCompany': // 获取企业信息  
        this.setData({
          companySelected: form.selected,
          company: form.selected.dept_name, 
          company_id: form.selected.dept_id,
          factory:'',
          equip:'',
          insider:'',
          leader:'',
          outsider:'',
        })
        break
      case 'selectStation': // 厂站名称
        this.setData({ 
          factory: form.selected.dept_name,
          factory_id: form.selected.dept_id,
          equip:'',
          insider:'',
          leader:'',
          outsider:'',
        })
        break
      case 'selectYcxlm': // 设备名称
        this.setData({
          equip: form.selected.YCXLM,
          equip_id: form.selected.dept_id,
          insider:'',
          leader:'',
          outsider:'',
        })
        break
      case 'getRepairer': // 负责人
      console.log('========'+form.config.type+'>>>>>')
        switch (form.config.type) {
          case 4: 
            this.setData({
              leader: form.selected.user_name,
              leader_id:form.selected.user_id
            }) 
            break;
          case 5: 
            this.setData({
              insider:form.selected.user_name,//内部检修人员
              insider_id:form.selected.user_id
            })
            break;
            case 3: 
                this.setData({
                  outsider:form.selected.user_name,
                  outsider_id:form.selected.user_id
                })//外部检修人员
            break;
        }
        break
    }
  },
  submit(){

      if($.isNull(this.data.company)){
          $.toast('请选择公司名称');
      }else if($.isNull(this.data.factory)){
          $.toast('请选择厂站名称');
      }else if($.isNull(this.data.leader)){
        $.toast('请选择负责人');
      }else if($.isNull(this.data.insider)){
        $.toast('请选择内部检修人员');
      }else if($.isNull(this.data.start_time)){
         $.toast('请选择开始时间');
      }else if($.isNull(this.data.end_time)){
         $.toast('请选择结束时间');
      }else if($.isNull(this.data.content)){
         $.toast('请填写任务内容');
      }else{
        var data=this.data;
          var params={
                        dept_id:this.data.equip!=''?this.data.equip_id!=''?this.data.equip_id:this.data.dept_id:this.data.dept_id,
                        company:data.company, //'企业用户',
                        company_id:data.company_id,
                        factory:data.factory, //'厂站名称',
                        factory_id:data.factory_id,
                        equip:data.equip, // '设备名称', 
                        contact:data.contact, // '联系人',
                        phone:data.phone, // '联系电话',
                        content:data.content,//任务内容
                        start_time:data.start_time,//计划开始时间
                        end_time:data.end_time,//计划结束时间
                        leader:data.leader_id,//负责人
                        insider:data.insider_id,//内部检修人员
                        outsider:data.outsider,//外部检修人员
                        is_power_off:data.is_power_off,//是否停电（1：是，0：否）
                        source:data.source,//计划来源
                        //缺陷转检修特有
                        'defectNumber':this.data.defectNumber || '',//缺陷单号
                        'dealPerson':wx.getStorageSync("user_name"),//处理人
                        'dealPerson_id':wx.getStorageSync('user_id'),//处理人userId
                        //报修转检修特有
                        'checkNumber':data.info.number || '',//检修单号


          }
          console.log(data.type==0?data.equip==''?data.company_id:data.equip_id:data.company_id);
          console.log(params);
              api.$post(this.data.url[this.data.type],params).then((res)=>{
                  if(res.data!=null){
                      $.toast("派单成功");
                      setTimeout(() => {
                        $.linkurl('', 'back')
                      }, 1500);
                  }else{
                    $.toast("派单失败");
                  }
              });
      }
  },
  selectCompanyHandle() { // 公司 
    if(!$.isNull(this.data.type) ){
      $.toast("该内容无法修改");
      return;
    }
    Store.dispatch({
      type: 'SET_FROM',
      form: {
        key: 'selectCompany', // 后台要的更改字段 
        type: 1, // 表单类型 1： radio  2：select
        config: {
          
        },
      },
    })

    $.linkurl(`/pages/main/chooseForm/chooseForm`)
  },

  selectStationHandle() { // 选厂站
    if(!$.isNull(this.data.type) ){
      $.toast("该内容无法修改");
      return;
    }
    if (this.data.company == '') {
      $.toast('请选择公司')
    } else {
      // console.log("===================="+this.data.company_id)
      Store.dispatch({
        type: 'SET_FROM',
        form: {
          key: 'selectStation', // 后台要的更改字段
          type: 1, // 表单类型 1： radio  2：select
          config: {
              company_id:this.data.company_id
          },
        },
      })

      $.linkurl(`/pages/main/chooseForm/chooseForm`)
    } 
  },

  getRepairerCompanyHandle(e) { // 选抢修负责人或者抢修人员
    var {type} = $.detail(e)
    var dept_id=this.data.equip!=''?this.data.equip_id!=''?this.data.equip_id:this.data.dept_id:this.data.dept_id;
    Store.dispatch({
      type: 'SET_FROM',
      form: {
        key: 'getRepairer', // 后台要的更改字段
        type: 1, // 表单类型 1： radio  2：select
        config: {
          type,  // 1 获取负责人；2获取人员；3缺陷发现人
          dept_id
        }, // 其他配置信息
      },
    })
    $.linkurl(`/pages/main/chooseForm/chooseForm`)
  },
  async selectYcxlmHandle (e) { // 根据厂站获取设备列表 
    console.log(this.data.factory_id)
        if(!$.isNull(this.data.type) && this.data.type!=0){
          $.toast("该内容无法修改");
          return;
        }
        if (this.data.factory == '') {
          $.toast('请选择厂站')
        } else {
          var res = await app._selectStation({ dept_id: this.data.company_id, company: this.data.company })
          var result = res.data.find((item) => {
            return item.dept_name == this.data.factory
          }) 
          var { type } = $.detail(e)
          Store.dispatch({
            type: 'SET_FROM',
            form: {
              key: 'selectYcxlm', // 后台要的更改字段 
              type: 1, // 表单类型 1： radio  2：select
              config: {
                station: !$.isNull(result)?result.station:this.data.factory_id
              },
            },
          })
          $.linkurl(`/pages/main/chooseForm/chooseForm`)
        } 
      
  },
    //##input 输入##
    input_handle(e) {
      this.setData({
        [e.currentTarget.dataset.key]: e.detail.value
      })
    },
    //##input 输入##
  startTimeHandle(){//开始时间弹窗
    this.setData({
      isShowTimeStart:true
    })
  },
  endTimeHandle(){//结束时间弹窗
      this,this.setData({
        isShowTimeEnd:true
      })
  },
  pickerHandle(){//是否停电弹窗
      this.setData({
        isShowPicker:true
      })
  },
  timeConfirmHandle(e){
    var { time, key } = e.detail
    this.setData({
      [key]: time
    })

    if(!$.isNull(this.data.start_time) && ! $.isNull(this.data.end_time)){
          var startTime= new Date(Date.parse(this.data.start_time));
          var endTime=new Date(Date.parse(this.data.end_time));
          if(startTime>=endTime){
              $.toast('开始时间不能大于结束时间')
              this.setData({
                [key]: ''
              })
          }
    }
  },
  pickerConfirmHandle(e){
      var { value, key, index } = e.detail
      this.setData({
        [key]: value.type
      })
  }
})